package interfases;

import logica.Categoria;
import persistencia.PersistirCategoria;

import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;

import java.awt.Dimension;
import java.awt.Font;
import java.awt.Color;
import java.awt.Toolkit;

import javax.swing.JTextField;
import javax.swing.JButton;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

import javax.swing.SwingConstants;


public class IAltaCategoria extends JFrame {

	private static final long serialVersionUID = 7L;
	
	private JPanel caja;
	private JTextField campoCat;
	private JTextField txtAltaDeCategoria;
	private JButton aceptar;
	private JButton cancelar;
	
	
	private void centrarPantalla(JFrame ventana, int x, int y){
		Toolkit t = Toolkit.getDefaultToolkit();
		Dimension pantalla = t.getScreenSize();
		int height = pantalla.height;
		int width = pantalla.width;
		int px =  (int) (width-x)/2;
		int py =  (int) (height-y)/2;
		ventana.setBounds(px, py, x, y);
	}

	public IAltaCategoria() {
		
		
		setTitle("Alta de Categoria");
		caja = new JPanel();
		caja.setBackground(new Color(255, 222, 173));
		caja.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(caja);
		caja.setLayout(null);
		
		centrarPantalla(this, 406, 260);
		
		// TEXTO INGRESAR NOMBRE
		JLabel txtIngrese = new JLabel("INGRESE EL NOMBRE DE LA NUEVA CATEGORIA");
		txtIngrese.setHorizontalAlignment(SwingConstants.CENTER);
		txtIngrese.setBounds(39, 80, 318, 22);
		txtIngrese.setForeground(Color.BLACK);
		txtIngrese.setFont(new Font("Eras Medium ITC", Font.PLAIN, 12));
		caja.add(txtIngrese);
		
		
		// CAMPO DE TEXTO
		campoCat = new JTextField();
		campoCat.setBounds(39, 113, 318, 22);
		caja.add(campoCat);
		campoCat.setColumns(10);
		campoCat.requestFocus();
		
		
		//BOTON ACEPTAR
		aceptar = new JButton("Aceptar");
		aceptar.setBounds(152, 186, 107, 23);
		aceptar.setFont(new Font("Eras Medium ITC", Font.PLAIN, 15));
		caja.add(aceptar);
		
		cancelar = new JButton("Cancelar");
		cancelar.setBounds(269, 186, 107, 23);
		cancelar.setFont(new Font("Eras Medium ITC", Font.PLAIN, 15));
		caja.add(cancelar);
		
		txtAltaDeCategoria = new JTextField();
		txtAltaDeCategoria.setEditable(false);
		txtAltaDeCategoria.setEnabled(false);
		txtAltaDeCategoria.setForeground(new Color(255, 255, 255));
		txtAltaDeCategoria.setText("Alta de Categoria");
		txtAltaDeCategoria.setHorizontalAlignment(SwingConstants.CENTER);
		txtAltaDeCategoria.setFont(new Font("Eras Medium ITC", Font.BOLD, 20));
		txtAltaDeCategoria.setBackground(new Color(128, 0, 0));
		txtAltaDeCategoria.setBounds(0, 0, 402, 50);
		caja.add(txtAltaDeCategoria);
		txtAltaDeCategoria.setColumns(10);
		
		
		// ACCION BOTON ACEPTAR
		aceptar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				
				String nomCat = campoCat.getText().toUpperCase();
				
				if (!campoCat.getText().isEmpty()) {
					
					Categoria c = new Categoria(nomCat);
					PersistirCategoria cat1= new PersistirCategoria();
					boolean existe = cat1.existeCategoria(c);
					
					if(!existe){
						//AGREGO LA CATEGORIA
						cat1.addCategoria(c);
						dispose();
						//LLAMADA A LA VENTANA DE CONFIRMACION
						JOptionPane.showMessageDialog(null,"Alta de Categoria Exitosa");
					}
					else{
						campoCat.setText("");
						campoCat.requestFocus();
						//SI LA CATEGORIA YA EXISTE -> LARGAR VENTANA EMERGENTE DE ERROR
						JOptionPane.showMessageDialog(null,"La Categoria " + campoCat.getText() + " ya EXISTE");
					}
				}
				else{
					//SI NO SE INGRESO NADA -> LARGAR VENTANA EMERGENTE DE ERROR
					campoCat.requestFocus();
					JOptionPane.showMessageDialog(null,"Ingrese en nombre de la Categoria!");
				}		
		  }
		});
		
		//ACCION DEL BOTON CANCELAR
		cancelar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				dispose();
			}
		});
		
	}
}
	
